package com.kayak.tg.client.utils;

import com.kayak.distribute.service.IRpcTGService;

import java.util.HashMap;
import java.util.Map;

/**
 * @ClassName RpcTGServiceStub
 * @Dsecription 本地存根
 * @Auth tinxi
 * @DATAE 2019/3/27 10:29
 */
public class RpcTGServiceStub implements IRpcTGService {

	private final IRpcTGService rpcTGService;

	// 构造函数传入真正的远程代理对象
	public RpcTGServiceStub(IRpcTGService rpcTGService) {
		this.rpcTGService = rpcTGService;
	}

	@Override
	public Map<String, String> rpcInvoke() {
		// 此代码在客户端执行, 你可以在客户端做ThreadLocal本地缓存，或预先验证参数是否合法，等等
		try {
			System.out.println(">>>>>>>client调用前的数据校验数据校验数据校验>>>>>>>");
			return rpcTGService.rpcInvoke();
		} catch (Exception e) {
			e.printStackTrace();
			// 你可以容错，可以做任何AOP拦截事项
			return new HashMap<>();
		}

	}

	@Override
	public Map<String, String> rpcInvoke(Object params) {
		return null;
	}

	@Override
	public Map<String, Object> rpcExecute(Object bean) {
		return null;
	}
}
